home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl 6
/
Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso
/
037a
/
tbw_40.zip
/
TBDEMO40.BAS
< prev
next >
Wrap
BASIC Source File
|
1987-12-28
|
10KB
|
336 lines
'Demonstration of TBWINDO
$INCLUDE "TBWINDO.INC"
key off
CALL TEXTBORDER(1)
CALL TBWFILL(1,1,25,80,32,FNATTR(7,1))
CALL MAKEWINDOW(2,10,10,35,FNATTR(0,2),FNATTR(10,2),2,3,1)
CALL PRTCWINDOW(3,"TURBO")
DELAY 2
CALL MAKEWINDOW(7,25,10,35,FNATTR(15,4),FNATTR(14,4),2,3,1)
CALL PRTCWINDOW(3,"BASIC")
DELAY 2
CALL MAKEWINDOW(12,40,10,35,FNATTR(0,3),FNATTR(15,3),2,3,1)
CALL PRTCWINDOW(3,"WINDOWS")
DELAY 4
CALL REMOVEWINDOW
DELAY 1
CALL REMOVEWINDOW
DELAY 1
CALL REMOVEWINDOW
'Put up opening screen
'4 windows of different colors and a Title Window
CALL MAKEWINDOW(4,15,10,30,FNATTR(4,3),FNATTR(4,3),4,3,1)
CALL MAKEWINDOW(3,36,13,40,FNATTR(15,2),FNATTR(15,2),3,3,1)
CALL MAKEWINDOW(9,10,13,40,FNATTR(0,5),FNATTR(0,5),2,3,1)
CALL MAKEWINDOW(12,42,11,36,FNATTR(3,4),FNATTR(3,4),1,3,1)
CALL MAKEWINDOW(3,5,7,40,FNATTR(0,7),FNATTR(1,7),2,3,1)
CALL PRTCWINDOW(3,"Presenting...")
DELAY 4
CALL MAKEWINDOW(8,20,7,40,FNATTR(0,7),FNATTR(1,7),2,3,1)
CALL PRTCWINDOW(1,"T B W I N D O")
CALL PRTCWINDOW(2,"4.0")
CALL PRTCWINDOW(4,"Windowing Routines for the")
CALL PRTCWINDOW(5,"Borland Turbo BASIC Compiler")
DELAY 3
CALL MAKEWINDOW(17,55,7,24,FNATTR(0,2),FNATTR(10,2),1,3,1)
CALL PRTWINDOW(1,2,"By:")
CALL PRTCWINDOW(3,"Rick Fothergill")
CALL PRTCWINDOW(4,"141 Oak Hill Road")
CALL PRTCWINDOW(5,"Pittsfield, MA 01201")
DELAY 4
FOR x = 1 to 7
CALL REMOVEWINDOW
NEXT
CALL MAKEWINDOW(9,16,8,52,FNATTR(0,7),FNATTR(1,7),2,0,0)
CALL PRTWINDOW(1,2,"The basic purpose of TBWINDO is to provide")
CALL PRTWINDOW(2,2,"the fundamental routines for implementing")
CALL PRTWINDOW(3,2,"simple 'windowing' into your Turbo BASIC pro-")
CALL PRTWINDOW(4,2,"grams. With just a few simple statements,")
CALL PRTWINDOW(5,2,"you can 'pop-up' a colored window onto the")
CALL PRTWINDOW(6,2,"screen.")
DELAY 3
CALL CLEARWINDOW
CALL PRTWINDOW(2,2,"The window can be a solid panel of any of")
CALL PRTWINDOW(4,2,"the BASIC background colors; such as ...")
DELAY 4
CALL MAKEWINDOW(10,25,7,35,FNATTR(1,2),FNATTR(1,2),0,0,0)
DELAY 3
CALL REMOVEWINDOW
CALL CLEARWINDOW
CALL PRTWINDOW(2,2,"or it can be surrounded by a 'frame' in any")
CALL PRTWINDOW(4,2,"of five styles...")
DELAY 3
CALL MAKEWINDOW(5,5,8,35,FNATTR(0,3),FNATTR(0,3),1,0,0)
CALL TITLEWINDOW(1,FNATTR(10,0),"[ Frame Style 1 ]")
CALL MAKEWINDOW(8,8,8,35,FNATTR(14,5),FNATTR(14,5),2,0,0)
CALL TITLEWINDOW(2,FNATTR(10,0),"[ Frame Style 2 ]")
CALL MAKEWINDOW(11,11,8,35,FNATTR(15,4),FNATTR(15,4),3,0,0)
CALL TITLEWINDOW(3,FNATTR(10,0),"[ Frame Style 3 ]")
CALL MAKEWINDOW(14,14,8,35,FNATTR(0,6),FNATTR(14,6),4,0,0)
CALL TITLEWINDOW(1,FNATTR(10,0),"[ Frame Style 4 ]")
CALL MAKEWINDOW(17,17,8,35,FNATTR(0,2),FNATTR(0,2),5,0,0)
CALL TITLEWINDOW(3,FNATTR(10,0),"[ Frame Style 5 ]")
DELAY 4
FOR x = 1 to 5
CALL REMOVEWINDOW
NEXT
CALL CLEARWINDOW
CALL PRTWINDOW(1,2,"The frame itself can be in any one of the")
CALL PRTWINDOW(2,2,"BASIC foreground colors. It can even blink")
CALL PRTWINDOW(3,2,"if you want...")
DELAY 3
FOR i=0 to 15
label$="[ Color:"+str$(i)+" ]"
j=rnd(1)*50
k=rnd(1)*12
CALL MAKEWINDOW(k+1,j+1,7,25,FNATTR(i,5),FNATTR(i,5),4,2,0)
CALL TITLEWINDOW(2,FNATTR(i,7),label$)
DELAY .5
NEXT
CALL MAKEWINDOW(7,20,7,25,FNATTR(31,5),FNATTR(31,5),4,2,0)
CALL TITLEWINDOW(2,FNATTR(31,5),"[ Color: 31 ]")
DELAY 4
FOR x = 1 to 17
CALL REMOVEWINDOW
NEXT
CALL CLEARWINDOW
CALL PRTCWINDOW(5,"The window itself can be presented in many")
CALL PRTCWINDOW(6,"different ways. It can be flat...")
DELAY 3
CALL MAKEWINDOW(5,10,10,30,FNATTR(15,5),FNATTR(14,5),1,0,0)
CALL MAKEWINDOW(5,45,10,30,FNATTR(15,5),FNATTR(14,5),1,0,0)
DELAY 3
CALL REMOVEWINDOW
CALL REMOVEWINDOW
CALL CLEARWINDOW
CALL PRTCWINDOW(4,"it can have one of four types of shadow underneath")
CALL PRTCWINDOW(6,"this is SOLID black - type 1 left type 2 right")
DELAY 3
CALL MAKEWINDOW(5,10,10,30,FNATTR(15,5),FNATTR(14,5),2,1,0)
CALL PRTCWINDOW(7,"Left Shadow")
DELAY 2
CALL MAKEWINDOW(5,45,10,30,FNATTR(15,2),FNATTR(0,2),2,2,0)
CALL PRTCWINDOW(7,"Right Shadow")
DELAY 2
CALL REMOVEWINDOW
CALL REMOVEWINDOW
CALL CLEARWINDOW
CALL PRTCWINDOW(6,"this is SHADOW black - type 3 left type 4 right")
DELAY 3
CALL MAKEWINDOW(5,10,10,30,FNATTR(15,5),FNATTR(14,5),2,3,0)
CALL PRTCWINDOW(7,"Left Shadow")
DELAY 2
CALL MAKEWINDOW(5,45,10,30,FNATTR(15,2),FNATTR(0,2),2,4,0)
CALL PRTCWINDOW(7,"Right Shadow")
DELAY 2
CALL REMOVEWINDOW
CALL REMOVEWINDOW
CALL CLEARWINDOW
CALL PRTCWINDOW(2,"Titles may be placed in any of six different")
CALL PRTCWINDOW(3,"locations, in any color or any combination.")
DELAY 2
CALL MAKEWINDOW(2,5,10,70,FNATTR(15,5),FNATTR(15,5),2,1,0)
FOR x = 1 to 6
title$ = "[ Location"+str$(x)+" ]"
CALL TITLEWINDOW(x,FNATTR(rnd(1)*16,rnd(1)*8),title$)
DELAY 1
NEXT
DELAY 3
CALL REMOVEWINDOW
CALL CLEARWINDOW
CALL PRTCWINDOW(3,"Windows can be zoomed")
CALL PRTCWINDOW(4,"onto the screen.")
DELAY 2
CALL MAKEWINDOW(2,2,15,60,FNATTR(0,2),FNATTR(14,2),2,0,1)
DELAY 2
CALL MAKEWINDOW(13,10,10,60,FNATTR(1,3),FNATTR(15,3),3,0,1)
DELAY 2
CALL MAKEWINDOW(7,33,10,45,FNATTR(14,5),FNATTR(14,5),1,0,1)
DELAY 2
CALL MAKEWINDOW(7,10,12,63,FNATTR(15,4),FNATTR(14,4),2,4,1)
CALL PRTCWINDOW(5,"HOW ABOUT THAT !!!")
DELAY 3
FOR x = 1 to 4
CALL REMOVEWINDOW
NEXT
CALL CLEARWINDOW
CALL PRTWINDOW(1,2,"Once you have your window on the screen, simply")
CALL PRTWINDOW(2,2,"use CALLs to PRTWINDOW or PRTCWINDOW to put text")
CALL PRTWINDOW(3,2,"in them. A CALL to CLEARWINDOW will erase the")
CALL PRTWINDOW(4,2,"contents of the window ... ")
DELAY 3
CALL CLEARWINDOW
CALL PRTWINDOW(1,2,"Each window is stored as a result of a CALL to")
CALL PRTWINDOW(2,2,"MAKEWINDOW. To restore the screen to it's")
CALL PRTWINDOW(3,2,"original contents, simply CALL REMOVEWINDOW.")
CALL PRTWINDOW(4,2,"Here is a good example . . .")
DELAY 5
CALL MAKEWINDOW(3,5,15,45,FNATTR(0,2),FNATTR(14,2),4,3,1)
CALL PRTCWINDOW(6,"This is screen 1 ...")
DELAY 2
CALL MAKEWINDOW(6,29,17,50,FNATTR(15,4),FNATTR(14,4),4,3,1)
CALL PRTCWINDOW(6,"This is screen 2 ...")
DELAY 2
CALL MAKEWINDOW(9,22,15,35,FNATTR(0,3),FNATTR(1,3),4,3,1)
CALL PRTCWINDOW(7,"This is screen 3 ...")
DELAY 2
CALL PRTCWINDOW(7,"Now we will return ...")
DELAY 2
CALL REMOVEWINDOW
CALL PRTCWINDOW(7,"Back to screen 2")
DELAY 2
CALL REMOVEWINDOW
CALL PRTCWINDOW(7,"Back to screen 1")
DELAY 2
CALL REMOVEWINDOW
DELAY 2
CALL CLEARWINDOW
CALL PRTWINDOW(2,2,"Next is a demonstration of the MAKEMENU")
CALL PRTWINDOW(3,2,"procedure which will create a point and")
CALL PRTWINDOW(4,2,"shoot type menu.")
DELAY 3
CALL REMOVEWINDOW
CALL TEXTBORDER(7)
CALL TBWFILL(1,1,25,80,32,FNATTR(0,3))
CALL mainmenu
CALL TEXTBORDER(0)
cls
sub mainmenu
shared item$(),itemcount,startpos
shared curntpos,done
done = 0
curntpos = 0
CALL MAKEWINDOW(10,20,7,40,FNATTR%(15,1),FNATTR(14,1),2,4,0)
CALL TITLEWINDOW(2,FNATTR(0,7),"[ MAIN MENU ]")
while not done
oldcurntpos = curntpos
item$(1) = "Pop Screen 1"
item$(2) = "Pop Screen 2"
item$(3) = "Pop Screen 3"
item$(4) = "Second Menu Demo"
item$(5) = "Exit"
itemcount = 5
startpos = 1
CALL MAKEMENU
select case curntpos
case 1 'screen 1
CALL popscreen1
case 2 ' screen 2
CALL popscreen2
case 3 ' screen 3
CALL popscreen3
case 4 ' second menu
CALL secondmenu
case else
CALL REMOVEWINDOW
curntpos = oldcurntpos
CALL TEXTBORDER(1)
CALL TBWFILL(1,1,25,80,32,FNATTR(15,1))
CALL MAKEWINDOW(9,16,8,52,FNATTR(0,7),FNATTR(1,7),2,0,0)
CALL PRTWINDOW(3,2,"Please see the source code and documentation")
CALL PRTWINDOW(4,2,"FOR how to create and use menu windows in")
CALL PRTWINDOW(5,2,"your programs....")
DELAY 5
done = -1
end select
wend 'done
CALL REMOVEWINDOW
end sub
sub popscreen1
CALL MAKEWINDOW(8,10,7,60,FNATTR(0,6),FNATTR(14,6),2,3,1)
CALL TITLEWINDOW(2,FNATTR(0,7),"[ SELECTION 1 ]")
CALL TBWPRINTC(10,10,70,"This is selection no. 1",FNATTR(0,6))
CALL TBWPRINTC(11,10,70,"Press enter to return to main menu...",FNATTR(15,6))
while not instat
wend
a$=inkey$
CALL REMOVEWINDOW
end sub
sub popscreen2
CALL MAKEWINDOW(8,10,7,60,FNATTR(0,3),FNATTR(15,3),2,3,1)
CALL TITLEWINDOW(2,FNATTR(10,0),"[ SELECTION 2 ]")
CALL TBWPRINTC(10,10,70,"This is selection no. 2",FNATTR(0,3))
CALL TBWPRINTC(11,10,70,"Press enter to return to main menu...",FNATTR(0,3))
while not instat
wend
a$=inkey$
CALL REMOVEWINDOW
end sub
sub popscreen3
CALL MAKEWINDOW(8,10,7,60,FNATTR(14,5),FNATTR(15,5),2,3,1)
CALL TITLEWINDOW(2,FNATTR(0,7),"[ SELECTION 3 ]")
CALL TBWPRINTC(10,10,70,"This is selection no. 3",FNATTR(14,5))
CALL TBWPRINTC(11,10,70,"Press enter to return to main menu...",FNATTR(14,5))
while not instat
wend
a$=inkey$
CALL REMOVEWINDOW
end sub
sub secondmenu
shared item$(),itemcount,startpos
shared curntpos,done
CALL MAKEWINDOW(7,25,6,40,FNATTR%(14,2),FNATTR(15,2),2,4,0)
CALL TITLEWINDOW(2,FNATTR(10,0),"[ SECOND MENU DEMO ]")
done = 0
oldcurntpos = curntpos
curntpos = 0
while not done
item$(1) = "Pop Screen 1"
item$(2) = "Pop Screen 2"
item$(3) = "Pop Screen 3"
item$(4) = "Exit"
itemcount = 4
startpos = 3
CALL MAKEMENU
select case curntpos
case 1 'screen 1
CALL popscreen1
case 2 ' screen 2
CALL popscreen2
case 3 ' screen 3
CALL popscreen3
case else
CALL REMOVEWINDOW
curntpos = oldcurntpos
done = -1
end select
wend 'done
done = 0
end sub